package com.haiyou.common.http.annotation;

import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;

import org.springframework.util.StringUtils;

/**
 * 
 * 
 * @Description: 字符串输入校验器
 * @author xingyuan
 * @date 2022年10月28日 上午10:41:55
 */
public class StringValidator implements ConstraintValidator<StringValid, String>{

	/**
	 * 是否能够为null 或  ""字符串
	 */
	private boolean notNull = false;
	
	/**
	 * 字符串长度 最大限制
	 */
	private int length = 2048;
	
    public void initialize(StringValid valid) {
    	this.notNull = valid.notNull();
    	this.length = valid.length();
    }
	
	/**
	 * @param value 输入值
	 * @param context 
	 */
	@Override
	public boolean isValid(String value, ConstraintValidatorContext context) {
		
		if(notNull) {
			//不能为null
			if(!StringUtils.hasLength(value)) {
				return false;
			}
			//长度判断
			if(value.length() > length) {
				return false;
			}
		}
		
		//字符串统一过滤处理
		return true;
	}

	
	
}
